constraintlayout: Fix parsing of constant constraints
authorMatthias Clasen <mclasen@redhat.com>
Wed, 18 Nov 2020 04:11:16 +0000 (23:11 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 18 Nov 2020 04:11:16 +0000 (23:11 -0500)
We were inadvertently turning constant constraints into
constraints against super, due to confusion between target
and source attribute.

gtk/gtkconstraintlayout.c

index e5d6037962a0aaf0fab4abbb9b2a4b5dde837bec..92fbfcc4165e6be305abef90be841c652c3034ea 100644 (file)
@@ -1431,18 +1431,18 @@ constraint_data_to_constraint (const ConstraintData *data,
   else
     strength = GTK_CONSTRAINT_STRENGTH_REQUIRED;
 
-  if (source != NULL && source_attr != GTK_CONSTRAINT_ATTRIBUTE_NONE)
+  if (source == NULL && source_attr == GTK_CONSTRAINT_ATTRIBUTE_NONE)
+    return gtk_constraint_new_constant (target, target_attr,
+                                        relation,
+                                        data->constant,
+                                        strength);
+  else
     return gtk_constraint_new (target, target_attr,
                                relation,
                                source, source_attr,
                                data->multiplier,
                                data->constant,
                                strength);
-
-  return gtk_constraint_new_constant (target, target_attr,
-                                      relation,
-                                      data->constant,
-                                      strength);
 }
 
 static GtkConstraintGuide *